home *** CD-ROM | disk | FTP | other *** search
/ Mac Power 1997 November / MACPOWER-1997-11.ISO.7z / MACPOWER-1997-11.ISO / AMUG / MUSIC / bol-processor-271-data.sit / bol-processor-271-data / BP2 examples / BP2 data / -da.tryCsound < prev    next >
Text File  |  1997-06-10  |  19KB  |  310 lines

  1. // Bol Processor version BP2.7.1
  2. // Data file saved as '-da.tryCsound'. Date: Mar 10 Juin 1997 -- 0:40
  3. -cs.tryCsound
  4. -se.tryCsound
  5.  
  6. // File ヤ-da.tryCsoundユ
  7. // A few musical examples to check the production of Csound scores
  8. // Here, BP2 converts data from MIDI to Csound.
  9. // The other method is to attach bits of Csound scores to
  10. // sound-object prototypes (see ヤ-da.checkCsoundObjectsユ)
  11.  
  12. // You will hear items on the MIDI output before they are saved as Csound scores.
  13. // If you don't want to use MIDI, uncheck "Use MIDI in/out" on the "Settings" window,
  14. // or check "Write item immediately".
  15.  
  16. // Since "Trace Csound" is checked, Csound scores are also displayed on the "Trace"
  17. // window. This can be changed in the "Settings" window (top).
  18.  
  19.  
  20. // We start with a simple example.  Select the following item and type command-P
  21. // (Play selection), then answer 'yes' to "Save to file?".
  22.  
  23.    A4 G4 C5 A4
  24.  
  25. // We obtain the following Csound score:
  26.  
  27. t 0.000 60.000
  28. i2 0.000 1.000 440.00 90.000 0.000 0.000 0.000 ; A4
  29. i2 1.000 1.000 392.00 90.000 0.000 0.000 0.000 ; G4
  30. i2 2.000 1.000 523.25 90.000 0.000 0.000 0.000 ; C5
  31. i2 3.000 1.000 440.00 90.000 0.000 0.000 0.000 ; A4
  32. s
  33.  
  34. // Instrument 2 has been used because it's the one assigned by default to (default) channel 1.
  35. // This score will not play with the default orchestra file "BP2test.orc" because the latter
  36. // contains no definition for instrument 2.
  37. // Argument 4□ is for pitch (in Herz). To change the diapason, enter a different
  38. // value for A4 frequency in the "Tuning" dialog (menu "Misc").
  39. // Argument 5 is the MIDI value of the volume (default 90).
  40. // Arguments 6 and 7 are used for the 'blub' parameter (see infra).
  41. // Argument 8 is not used, and its value therefore remains 0.
  42.  
  43. // Instrument 2 does not use the pitchbend value as a parameter,
  44. // but it changes the pitch parameter (in Hz) accordingly.
  45. // Therefore, in the following example, G4 being 200 cents higher is played at the same pitch
  46. // as A4.
  47.  
  48. _pitchrange(200) A4 _pitchbend(200) G4 _pitchbend(0) C5 A5
  49. i2 0.000 1.000 440.00 90.000 0.000 0.000 0.000 ; A4
  50. i2 1.000 1.000 440.00 90.000 0.000 0.000 0.000 ; G4
  51. i2 2.000 1.000 523.25 90.000 0.000 0.000 0.000 ; C5
  52. i2 3.000 1.000 880.00 90.000 0.000 0.000 0.000 ; A5
  53.  
  54.  
  55. // Now we will force instrument to 3.  Note that many new parameters are displayed.
  56. // Default volume is 90 on MIDI scale.  It is converted to 16.98 (log scale) using
  57. // the volume mapping defined in instrument 3.  Besides, since instrument 3 accepts
  58. // pitchbend corrections, pitchbend is applied to G4 instead of changing its frequency.
  59.  
  60. _ins(3) _pitchrange(200) A4 _pitchbend(200) G4 _pitchbend(0) C5 A5
  61. i3 0.000 1.000 440.00 8191.500 8191.500 16.981 16.981 0.000 0.000 0.000 0.000 0.000 ; A4
  62. i3 1.000 1.000 392.00 16383.000 16383.000 16.981 16.981 0.000 0.000 0.000 0.000 0.000 ; G4
  63. i3 2.000 1.000 523.25 8191.500 8191.500 16.981 16.981 0.000 0.000 0.000 0.000 0.000 ; C5
  64. i3 3.000 1.000 880.00 8191.500 8191.500 16.981 16.981 0.000 0.000 0.000 0.000 0.000 ; A5
  65.  
  66. // Arguments 5 and 6 represent the start and end values of pitchbend.  This will make it
  67. // possible to instruct Csound to work out a portamento (see infra).
  68.  
  69. // Playing simple notes on channel 2 calls instrument 3, which has volume control parameters.
  70.  
  71. _chan(2) _modcont _mod(0) C4 D4_ _ E4 _mod(12431)
  72. i3 0.000 1.000 261.63 8191.500 8191.500 16.981 16.981 0.000 0.000 0.000 607.019 0.000 ; C4
  73. i3 1.000 3.000 293.66 8191.500 8191.500 16.981 16.981 0.000 0.000 607.019 2428.078 0.000 ; D4
  74. i3 4.000 1.000 329.63 8191.500 8191.500 16.981 16.981 0.000 0.000 2428.078 3035.097 0.000 ; E4
  75.  
  76. // Another way of doing the same without tempering with channels is to impose instrument 3.
  77.  
  78. _ins(3) _modcont _mod(0) C4 D4_ _ E4 _mod(12431)
  79.  
  80. // Beware that instrument specification supersedes the default instrument assignment
  81. // done on the basis of a MIDI channel.  Here for instance, _chan(2) does not set the
  82. // instrument index to 3, and consequently _mod() is ignored.
  83. _ins(1) _chan(2) _modcont _mod(0) C4 D4_ _ E4 _mod(12431)
  84. i1 0.000 1.000 8.00 90.000 90.000 0.000 0.000 0.000 0.000 ; C4
  85. i1 1.000 3.000 8.02 90.000 90.000 0.000 0.000 0.000 0.000 ; D4
  86. i1 4.000 1.000 8.04 90.000 90.000 0.000 0.000 0.000 0.000 ; E4
  87.  
  88. // A polymetric structure in which the same note (D5) has two consecutive NoteOn's.
  89. // In MIDI, the second NoteOn is ignored.  In Csound it is accepted because the same
  90. // instrument may be invoked several times simultaneously.
  91. // (More on this problem in メ-da.tryStrikeModeモ)
  92.  
  93. _ins(The default) {_volume(30) C5 D5 E5 F5,_volume(20) G5 D5 C6}
  94. i1 0.000 1.000 9.00 30.000 30.000 0.000 0.000 0.000 0.000 ; C5
  95. i1 0.000 1.333 9.07 20.000 20.000 0.000 0.000 0.000 0.000 ; G5
  96. i1 1.000 1.000 9.02 30.000 30.000 0.000 0.000 0.000 0.000 ; D5
  97. i1 1.333 1.333 9.02 20.000 20.000 0.000 0.000 0.000 0.000 ; D5 striked again
  98. i1 2.000 1.000 9.04 30.000 30.000 0.000 0.000 0.000 0.000 ; E5
  99. i1 3.000 1.000 9.05 30.000 30.000 0.000 0.000 0.000 0.000 ; F5
  100. i1 2.666 1.334 10.00 20.000 20.000 0.000 0.000 0.000 0.000 ; C6
  101.  
  102. // Note that this example would sound strange without volume controls: we would
  103. // get a silence during the time the two D5' are superimposed, simply because they are sine
  104. // waves with same amplitudes and opposite phases!
  105.  
  106.  
  107. // The same note played at different volumes. Note that instrument 3 is now specified by its
  108. // name "Harpsichord".  (Don't look for it in an orchestra file!)
  109.  
  110. _ins(Harpsichord)  _volume(0) A4 _volume(32) A4 _volume(64) A4 _volume(80) A4_volume(127) A4
  111. i3 0.000 1.000 440.00 8191.500 8191.500 -24.000 -24.000 0.000 0.000 0.000 0.000 0.000 ; A4
  112. i3 1.000 1.000 440.00 8191.500 8191.500 -2.763 -2.763 0.000 0.000 0.000 0.000 0.000 ; A4
  113. i3 2.000 1.000 440.00 8191.500 8191.500 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; A4
  114. i3 3.000 1.000 440.00 8191.500 8191.500 13.204 13.204 0.000 0.000 0.000 0.000 0.000 ; A4
  115. i3 4.000 1.000 440.00 8191.500 8191.500 24.000 24.000 0.000 0.000 0.000 0.000 0.000 ; A4
  116.  
  117. // The following illustrates volume decreasing from 127 (i.e. +24 after mapping) to
  118. // 0 (i.e. -25 after mapping).  Instrument 3 has two parameters (7 and 8) taking the
  119. // start and end volume respectively, and these values will be interpolated to
  120. // produce a continuous change.
  121.  
  122. _ins(Harpsichord)  _volumecont _volume(127) A4 _volume(0)
  123. i3 0.000 1.000 440.00 8191.500 8191.500 24.000 -24.000 0.000 0.000 0.000 0.000 0.000 ; A4
  124.  
  125. // Similar continuous changes over several notes invoking the same instrument.
  126.  
  127. _ins(Harpsichord)  _volumecont _volume(127) A4 G4 C5 A5 A4 G4 C5 A5 _volume(0)
  128. i3 0.000 1.000 440.00 8191.500 8191.500 24.000 21.688 0.000 0.000 0.000 0.000 0.000 ; A4
  129. i3 1.000 1.000 392.00 8191.500 8191.500 21.688 18.431 0.000 0.000 0.000 0.000 0.000 ; G4
  130. i3 2.000 1.000 523.25 8191.500 8191.500 18.431 12.899 0.000 0.000 0.000 0.000 0.000 ; C5
  131. i3 3.000 1.000 880.00 8191.500 8191.500 12.899 -0.031 0.000 0.000 0.000 0.000 0.000 ; A5
  132. i3 4.000 1.000 440.00 8191.500 8191.500 -0.031 -1.179 0.000 0.000 0.000 0.000 0.000 ; A4
  133. i3 5.000 1.000 392.00 8191.500 8191.500 -1.179 -2.794 0.000 0.000 0.000 0.000 0.000 ; G4
  134. i3 6.000 1.000 523.25 8191.500 8191.500 -2.794 -5.547 0.000 0.000 0.000 0.000 0.000 ; C5
  135. i3 7.000 1.000 880.00 8191.500 8191.500 -5.547 -24.000 0.000 0.000 0.000 0.000 0.000 ; A5
  136.  
  137. // The same but stepwise.
  138.  
  139. _ins(Harpsichord)  _volumestep _volume(127) A4 G4 C5 A5 A4 G4 C5 A5 _volume(0)
  140. i3 0.000 1.000 440.00 8191.500 8191.500 24.000 24.000 0.000 0.000 0.000 0.000 0.000 ; A4
  141. i3 1.000 1.000 392.00 8191.500 8191.500 21.688 21.688 0.000 0.000 0.000 0.000 0.000 ; G4
  142. i3 2.000 1.000 523.25 8191.500 8191.500 18.431 18.431 0.000 0.000 0.000 0.000 0.000 ; C5
  143. i3 3.000 1.000 880.00 8191.500 8191.500 12.899 12.899 0.000 0.000 0.000 0.000 0.000 ; A5
  144. i3 4.000 1.000 440.00 8191.500 8191.500 -0.031 -0.031 0.000 0.000 0.000 0.000 0.000 ; A4
  145. i3 5.000 1.000 392.00 8191.500 8191.500 -1.179 -1.179 0.000 0.000 0.000 0.000 0.000 ; G4
  146. i3 6.000 1.000 523.25 8191.500 8191.500 -2.794 -2.794 0.000 0.000 0.000 0.000 0.000 ; C5
  147. i3 7.000 1.000 880.00 8191.500 8191.500 -5.547 -5.547 0.000 0.000 0.000 0.000 0.000 ; A5
  148.  
  149.  
  150. _ins(Harpsichord)  _volumecont _volume(127) A4 G4 _volume(10) C5 A5
  151. i3 0.000 1.000 440.00 8191.500 8191.500 24.000 4.549 0.000 0.000 0.000 0.000 0.000 ; A4
  152. i3 1.000 1.000 392.00 8191.500 8191.500 4.549 -7.372 0.000 0.000 0.000 0.000 0.000 ; G4
  153. i3 2.000 1.000 523.25 8191.500 8191.500 -7.372 -7.372 0.000 0.000 0.000 0.000 0.000 ; C5
  154. i3 3.000 1.000 880.00 8191.500 8191.500 -7.372 -7.372 0.000 0.000 0.000 0.000 0.000 ; A5
  155.  
  156. _ins(Harpsichord)  _pitchcont _pitchbend(16383) A4 G4 C5 A5 A4 G4 C5 A5 _pitchbend(0)
  157. i3 0.000 1.000 440.00 16383.000 14335.125 16.981 16.981 0.000 0.000 0.000 0.000 0.000 ; A4
  158. i3 1.000 1.000 392.00 14335.125 12287.250 16.981 16.981 0.000 0.000 0.000 0.000 0.000 ; G4
  159. i3 2.000 1.000 523.25 12287.250 10239.375 16.981 16.981 0.000 0.000 0.000 0.000 0.000 ; C5
  160. i3 3.000 1.000 880.00 10239.375 8191.500 16.981 16.981 0.000 0.000 0.000 0.000 0.000 ; A5
  161. i3 4.000 1.000 440.00 8191.500 6143.625 16.981 16.981 0.000 0.000 0.000 0.000 0.000 ; A4
  162. i3 5.000 1.000 392.00 6143.625 4095.750 16.981 16.981 0.000 0.000 0.000 0.000 0.000 ; G4
  163. i3 6.000 1.000 523.25 4095.750 2047.875 16.981 16.981 0.000 0.000 0.000 0.000 0.000 ; C5
  164. i3 7.000 1.000 880.00 2047.875 0.000 16.981 16.981 0.000 0.000 0.000 0.000 0.000 ; A5
  165.  
  166. // Here pitchbend and volume vary simultaneously
  167.  
  168. _ins(Harpsichord) _volumecont _volume(0) _pitchcont _pitchrange(200) _pitchbend(200) A4 G4 C5 A5 A4 G4 C5 A5 _pitchbend(-200) _volume(127)
  169. i3 0.000 1.000 440.00 16383.000 14335.125 -24.000 -5.547 0.000 0.000 0.000 0.000 0.000 ; A4
  170. i3 1.000 1.000 392.00 14335.125 12287.250 -5.547 -2.794 0.000 0.000 0.000 0.000 0.000 ; G4
  171. i3 2.000 1.000 523.25 12287.250 10239.375 -2.794 -1.179 0.000 0.000 0.000 0.000 0.000 ; C5
  172. i3 3.000 1.000 880.00 10239.375 8191.500 -1.179 -0.031 0.000 0.000 0.000 0.000 0.000 ; A5
  173. i3 4.000 1.000 440.00 8191.500 6143.625 -0.031 12.899 0.000 0.000 0.000 0.000 0.000 ; A4
  174. i3 5.000 1.000 392.00 6143.625 4095.750 12.899 18.431 0.000 0.000 0.000 0.000 0.000 ; G4
  175. i3 6.000 1.000 523.25 4095.750 2047.875 18.431 21.688 0.000 0.000 0.000 0.000 0.000 ; C5
  176. i3 7.000 1.000 880.00 2047.875 0.000 21.688 24.000 0.000 0.000 0.000 0.000 0.000 ; A5
  177.  
  178.  
  179. // So far we have seen instruments interpolate between a start and end value.
  180. // Instrument 1, here called "The default", i.e. the one defined in "BP2test.orc",
  181. // is able to vary pitchbend and volume in a more laborated way, using a function table.
  182. // BP2 creates function tables automatically when required and when the instrument
  183. // specification (her "-cs.tryCsound") provides slots (arguments) for entering
  184. // function table indexes.
  185. // Here is a simple example with pitchbend.  Both notations yield the same score.
  186. // You can play this score using the demo orchestra "BP2test.orc". (Doesn't sound great!)
  187. _ins(The default)  _pitchcont _pitchbend(0) D4__ _pitchbend(16383) E4_ _pitchbend(0)___
  188. _ins(The default) _pitchrange(200)  _pitchcont _pitchbend(-200) D4__ _pitchbend(+200) E4_ _pitchbend(-200)___
  189. i1 0.000 3.000 8.02 90.000 90.000 0.000 -200.000 200.000 0.000 ; D4
  190. f101 3.000 256 -7 200.000 102 -200.000 154 -200.000
  191. i1 3.000 5.000 8.04 90.000 90.000 0.000 200.000 -200.000 101.000 ; E4
  192.  
  193. // Note that GENO7 is used. GENO8 (cubic spline interpolation) could be envisaged but it
  194. // has the drawback of forcing the first derived to zero on the start and end
  195. // points.  GEN07 is also much faster.
  196.  
  197. // Here C4 needs a four-point table whereas D4 needs only linear interpolation
  198. _ins(1)  _pitchrange(200) _pitchbend(0) _pitchcont C4 _ _pitchbend(20)_ _ _pitchbend(165) _ _ D4 _ _ _ _pitchbend(150)
  199. f101 0.000 256 -7 0.000 85 20.000 85 165.000 171 160.000
  200. i1 0.000 6.000 8.00 90.000 90.000 0.000 0.000 160.000 101.000 ; C4
  201. i1 6.000 4.000 8.02 90.000 90.000 0.000 160.000 150.000 0.000 ; D4
  202.  
  203. // Here the initial portamento on a silence '-' will only be take care of by the
  204. // MIDI output.  Csound just ignores silences.
  205. _ins(1)  _pitchrange(200) _pitchbend(0) _pitchcont - _ _ _ C4 _ _ _ _pitchbend(200) _ _ D4 _ _ _ _pitchbend(150)
  206. f101 4.000 256 -7 100.000 170 200.000 86 183.333
  207. i1 4.000 6.000 8.00 90.000 90.000 0.000 100.000 183.333 101.000 ; C4
  208. i1 10.000 4.000 8.02 90.000 90.000 0.000 183.333 150.000 0.000 ; D4
  209.  
  210. _ins(1)  _pitchrange(200) _pitchbend(0) _pitchcont - _ _pitchbend(20) _ _ C4 _ _ _ _pitchbend(200) _ _ D4 _ _ _ _pitchbend(150)
  211. f101 4.000 256 -7 80.000 170 200.000 86 183.333
  212. i1 4.000 6.000 8.00 90.000 90.000 0.000 80.000 183.333 101.000 ; C4
  213. i1 10.000 4.000 8.02 90.000 90.000 0.000 183.333 150.000 0.000 ; D4
  214.  
  215. _ins(1) _pitchcont _pitchrange(200) _pitchbend(0) - _ _ _ C4 _ _ _ _pitchbend(200) _ _ D4 _ _ _ _pitchbend(150)
  216. f101 4.000 256 -7 100.000 170 200.000 86 183.333
  217. i1 4.000 6.000 8.00 90.000 90.000 0.000 100.000 183.333 101.000 ; C4
  218. i1 10.000 4.000 8.02 90.000 90.000 0.000 183.333 150.000 0.000 ; D4
  219.  
  220. // Here the section bracketted {} follows an independant portamento
  221. _ins(1) _pitchcont _pitchrange(200) _pitchbend(0) - _ _ _ {C4 _ _ _ _pitchbend(200) _ _} D4 _ _ _ _pitchbend(150)
  222. f101 4.000 256 -7 42.857 170 200.000 86 200.000
  223. i1 4.000 6.000 8.00 90.000 90.000 0.000 42.857 200.000 101.000 ; C4
  224. i1 10.000 4.000 8.02 90.000 90.000 0.000 107.143 150.000 0.000 ; D4
  225.  
  226. // A polymetric structure. E4 keeps the initial pitchbend value of C4.
  227. _ins(1) _pitchcont _pitchrange(200) _pitchbend(0) - _ _ _ {C4 _ _ _ _pitchbend(200) _ _,E4} D4 _ _ _ _pitchbend(150)
  228. f101 4.000 256 -7 42.857 170 200.000 86 200.000
  229. i1 4.000 6.000 8.00 90.000 90.000 0.000 42.857 200.000 101.000 ; C4
  230. i1 4.000 6.000 8.04 90.000 90.000 0.000 42.857 42.857 0.000 ; E4
  231. i1 10.000 4.000 8.02 90.000 90.000 0.000 107.143 150.000 0.000 ; D4
  232.  
  233. // Here, E4 has its own independent movement.
  234. _ins(1) _pitchcont _pitchrange(200) _pitchbend(0) - _ _ _ {C4 _ _ _ _pitchbend(200) _ _,E4 _  _pitchbend(180) _ _pitchbend(60) _} D4 _ _ _ _pitchbend(150)
  235. f101 4.000 256 -7 42.857 170 200.000 86 200.000
  236. i1 4.000 6.000 8.00 90.000 90.000 0.000 42.857 200.000 101.000 ; C4
  237. f102 4.000 256 -7 42.857 128 180.000 64 60.000 192 60.000
  238. i1 4.000 6.000 8.04 90.000 90.000 0.000 42.857 60.000 102.000 ; E4
  239. i1 10.000 4.000 8.02 90.000 90.000 0.000 107.143 150.000 0.000 ; D4
  240.  
  241. // Don't forget to set _pitchrange(200) on channel 2 otherwise  _pitchbend(180) will be
  242. // taken as a MIDI value (range 0..16383). Note again that channel 2 does not assign
  243. // its default instrument 3 because instrument 1 has already been specified.
  244. _ins(1) _pitchcont _pitchrange(200) _pitchbend(0) - _ _ _ {C4 _ _ _ _pitchbend(200) _ _,ツ
  245. _chan(2)  _pitchrange(200) E4 _  _pitchbend(180) _ _} D4 _ _ _ _pitchbend(150)
  246. f101 4.000 256 -7 42.857 170 200.000 86 200.000
  247. i1 4.000 6.000 8.00 90.000 90.000 0.000 42.857 200.000 101.000 ; C4
  248. f102 4.000 256 -7 42.857 128 180.000 128 180.000
  249. i1 4.000 6.000 8.04 90.000 90.000 0.000 42.857 180.000 102.000 ; E4
  250. i1 10.000 4.000 8.02 90.000 90.000 0.000 107.143 150.000 0.000 ; D4
  251.  
  252. // In the above example, if you forget to set the instrument to 1, instruments will be
  253. // assigned on the basis of MIDI channels. This yields:
  254. _pitchcont _pitchrange(200) _pitchbend(0) - _ _ _ {C4 _ _ _ _pitchbend(200) _ _,ツ
  255. _chan(2)  _pitchrange(200) E4 _  _pitchbend(180) _ _} D4 _ _ _ _pitchbend(150)
  256. i2 4.000 6.000 268.18 90.000 0.000 0.000 0.000 ; C4
  257. i3 4.000 6.000 329.63 9946.821 15563.850 16.981 16.981 0.000 0.000 0.000 0.000 0.000 ; E4
  258. i2 10.000 4.000 312.41 90.000 0.000 0.000 0.000 ; D4
  259.  
  260.  
  261. // Let us now try an arbitrary parameter 'blurb' (which has no MIDI equivalent)
  262. // defined on both instruments 'Harpsichord' and 'Flute'.
  263.  
  264. _ins(Harpsichord) _cont(blurb) _value(blurb,123.42) C4 D4 _ins(Flute) E4 F4 _value(blurb,-211) _step(blurb)  G4 A4  _value(blurb,-34) _fixed(blurb) B4 C5
  265. i3 0.000 1.000 261.63 8191.500 8191.500 16.981 16.981 123.420 39.815 0.000 0.000 0.000 ; C4
  266. i3 1.000 1.000 293.66 8191.500 8191.500 16.981 16.981 39.815 -43.790 0.000 0.000 0.000 ; D4
  267. i2 2.000 1.000 329.63 90.000 -43.790 -127.395 0.000 ; E4
  268. i2 3.000 1.000 349.23 90.000 -127.395 -211.000 0.000 ; F4
  269. i2 4.000 1.000 392.00 90.000 -211.000 -211.000 0.000 ; G4
  270. i2 5.000 1.000 440.00 90.000 -122.500 -122.500 0.000 ; A4
  271. i2 6.000 1.000 493.88 90.000 -34.000 -34.000 0.000 ; B4
  272. i2 7.000 1.000 523.25 90.000 -34.000 -34.000 0.000 ; C5
  273.  
  274. // Instrument "Flute" can handle function tables for 'blurb'.
  275. _ins(Flute) _cont(blurb) _value(blurb,544.5) C4__  _value(blurb,120) __ _value(blurb,-37)___ _value(blurb,0)
  276. f101 0.000 256 -7 544.500 96 120.000 64 -37.000 192 0.000
  277. i2 0.000 8.000 261.63 90.000 544.500 0.000 101.000 ; C4
  278.  
  279. // Watch out carefully: if the 'arbitrary' parameter is named 'volume' then it is
  280. // understood as the MIDI volume, here remapped to the range -24..+24
  281. _ins(Harpsichord)  _cont(volume) _value(volume,127) A4 B4 _value(volume,0)
  282. i3 0.000 1.000 440.00 8191.500 8191.500 24.000 -0.031 0.000 0.000 0.000 0.000 0.000 ; A4
  283. i3 1.000 1.000 493.88 8191.500 8191.500 -0.031 -24.000 0.000 0.000 0.000 0.000 0.000 ; B4
  284.  
  285. // The same with 'pitchbend', 'pressure', 'panoramic' and 'modulation' (all case-sensitive)
  286. // In instrument 3, modulation is remapped to the range 0..4000.
  287. _ins(Harpsichord) _cont(modulation) _value(modulation,0) A4 B4 C5 D5 _value(modulation,16383)
  288. i3 0.000 1.000 440.00 8191.500 8191.500 16.981 16.981 0.000 0.000 0.000 1000.000 0.000 ; A4
  289. i3 1.000 1.000 493.88 8191.500 8191.500 16.981 16.981 0.000 0.000 1000.000 2000.000 0.000 ; B4
  290. i3 2.000 1.000 523.25 8191.500 8191.500 16.981 16.981 0.000 0.000 2000.000 3000.000 0.000 ; C5
  291. i3 3.000 1.000 587.33 8191.500 8191.500 16.981 16.981 0.000 0.000 3000.000 4000.000 0.000 ; D5
  292.  
  293. // Now the two combined:
  294. _ins(Harpsichord)  _cont(volume) _cont(modulation) _value(volume,127) _value(modulation,0) A4 B4 C5 D5 _value(volume,0)  _value(modulation,16383)
  295. i3 0.000 1.000 440.00 8191.500 8191.500 24.000 18.431 0.000 0.000 0.000 1000.000 0.000 ; A4
  296. i3 1.000 1.000 493.88 8191.500 8191.500 18.431 -0.031 0.000 0.000 1000.000 2000.000 0.000 ; B4
  297. i3 2.000 1.000 523.25 8191.500 8191.500 -0.031 -2.794 0.000 0.000 2000.000 3000.000 0.000 ; C5
  298. i3 3.000 1.000 587.33 8191.500 8191.500 -2.794 -24.000 0.000 0.000 3000.000 4000.000 0.000 ; D5
  299.  
  300. // Note that if the arbitrary parameter is unknown to the instrument it is simply ignored.
  301. // No warning is issued, for example:
  302. _ins(Harpsichord)  _cont(gasp) _value(gasp,0) A4 B4 _value(gasp,1000)
  303. i3 0.000 1.000 440.00 8191.500 8191.500 16.981 16.981 0.000 0.000 0.000 0.000 0.000 ; A4
  304. i3 1.000 1.000 493.88 8191.500 8191.500 16.981 16.981 0.000 0.000 0.000 0.000 0.000 ; B4
  305.  
  306. // Instrument 'Splashmachine' handles the 'splash' parameter which is instructed to produce
  307. // function tables with GEN08 (cubic spline) instead of GEN07.
  308. _ins(Splashmachine) _cont(splash) _value(splash,544.5) C4__  _value(splash,120) __ _value(splash,-37)___ _value(splash,130)
  309. f101 0.000 256 -8 544.500 96 120.000 64 -37.000 192 130.000
  310. i4 0.000 8.000 8.00 90.000 90.000 0.000 0.000 0.000 0.000 544.500 130.000 101.000 ; C4